SproutCore 1.8.2 Released

written by admin

_[edit] Due to a mistake in the included files of the published 1.8.2 gem, the gem needed to be re-built.  Therefore the current working version of the gem for SproutCore 1.8.2 is sproutcore-1.8.2.1.  Sorry for any confusion._

We are pleased to announce the release of SproutCore 1.8.2. This release contains minor fixes to the 1.8 code-base and will likely be the last patch of 1.8 prior to the 1.9.0 release. To upgrade to the latest version, simply run:

gem update sproutcore

This is a patch release and contains the following bug fixes:

  • Fixed syntax error in Datastore unit test.

  • SC.SplitView can now mixin SC.SplitChild.

  • Thinned picker pane border divs so that they don’t overlap the content view.

  • Prevents target property conflict when configuring button targets with SC.AlertPane.

  • Changed the aria-orientation of horizontal SC.ScrollView to ‘horizontal’ from ‘vertical’.

  • Allows SC.CollectionFastPath to work with sparse content by always returning an item view even when content isn’t yet available.

  • Prevents SC.GridView from iterating over its content array in order to work with sparse content.

  • The ‘mobile-safari’ body class name is no longer being added in all browsers.

  • Enables pasting in SC.TextFieldView to notify that the value changed.

  • Prevents default touch behavior being intercepted on

Announcing SproutCore 1.8.1!

written by admin

We’re pleased to announce the release of SproutCore 1.8.1.  To upgrade to the latest version, simply run:

gem update sproutcore

If you installed SproutCore using the installer, please note that due to the strain that maintaining the installers puts on the release process, we will not be updating the installer for each patch level release.   Therefore, to get the very latest stable version, it is recommended that you install the SproutCore gem.

Installing the gem is actually quite easy and there are detailed instructions for each platform at http://sproutcore.com/install/.  Simply find your platform and go to the Advanced Install tab, which helps you get Ruby properly installed.  If you’ve already got Ruby 1.9 installed, it is as simple as gem install sproutcore.

This is a patch level release and contains the following bug fixes:

* Documentation fixes.
* Fixes the timeout proxy settings: :inactivity_timeout & :connect_timeout. Setting them in a Buildfile proxy statement allows the developer to extend the timeout for the connection to be setup and for activity to occur.
* Adds missing CSS for SC.PickerPane left and right pointer.
* Tidies up index.rhtml template:
  - removes self-closing HTML
  - renames app.manifest to manifest.appcache
* Fixes the styling of ModalPane backdrop for SC.PanelPane.
* Fixes regression with Firefox specific SC.TextFieldView CSS.
* Improves use and compatibility of SC.TextFieldView:
  - applies 'autocapitalize' and 'autocorrect' attributes to all browsers
  - automatically centers hint text
  - fixes problem centering input elements in IE8
  - fixes problem positioning hint in textareas
  - improves readability of hints by making them antialiased in Webkit
* Fixes issue when subsequent attempts to load a failed/aborted image will result in queue processing being stalled.
* Fixes nesting SC.ScrollViews not passing mousewheel events from child to parent scroll view when child can no longer scroll.
* Fixes styling problem with SC.ListItemView right-icon.
* Fixes SC.StaticContentView not removing previous content when setting content to null.
* Fixes Safari focus ring artifacts in panes and Chrome bug with non-HW accelerated animations in render layers, by removing the default .sc-pane --webkit-transform: translate3d(0,0,0) CSS. This also makes it possible to accurately manage which parts of the page should become layers, because making everything a layer is not optimal.

To view the individual changes, check out the 1-8-stable branch on github.

Wesley Workman & Tim Evans are now SproutCore Reviewers

written by tkeating

Please join us in congratulating Tim and Wesley on achieving SproutCore Reviewer status.  They are two of the most active contributors and have shown that they share our ideal of making SproutCore the most feature rich and highest quality application development framework.

More importantly, please join us in thanking Tim and Wesley and all the Committers and Reviewers for the work they’ve done to get us here.  We ask a lot of our burgeoning team and we are fortunate to have such people.

Announcing SproutCore 1.8!

written by tkeating

I’m very pleased to announce the release of SproutCore version 1.8.0.  This release includes several new features, improvements and bug fixes and is a recommended upgrade for all SproutCore developers.

To install the latest version of SproutCore, visit http://sproutcore.com/install/ to get an updated installer for your system or if you are using the SproutCore gem, simply run:

gem update sproutcore

Thoughts on SproutCore

But before I get into some of the technical details of 1.8, I wanted to give a brief update on the status of the project.  I want to do this, because this release is about more than the code, it’s also about marking a milestone and making a statement.

The milestone is that this is the first major release of SproutCore after the project’s most active backer disappeared and the statement is, is that the SproutCore community is stronger than ever!

I cannot begin to express my enthusiasm for the way that the community has pulled together to make this release happen.  When I was asked to take on more of the care and feeding of SproutCore, Charles Jolley and I introduced a number of policies that were supposed to ensure that SproutCore never fell into the same predicament again. But I don’t think anyone knew how successful these changes would be until today.

Although I generally like to sit on my opinions for as long as possible, I feel that this is a time to be firm.  I say SproutCore is not only the most complete JavaScript application framework, it is, or at least is going to be, the application framework with the strongest open source community.  And this is why:

Yes, we have been through a rocky period and like any period of transition, it was accompanied by a flurry of activity and opinion on what should become the new reality.  Most of the ideas came from those that believed change should be immediate, that we could simply cast off any previous concerns and leap frog into a new future.

This is of course, a pipe dream.  If we stopped building consensus and instead chased easy opportunities, we may generate hype, but the real issues, the issues of building trust; of fostering and supporting a community of experienced SproutCore committers and developers; these real issues would be completely unaddressed.  True change doesn’t take radical ideas, it simply takes hard work, endurance and keeping a clean house where good ideas can grow, and that is what I believe SproutCore 1.8 represents.

We have a core of developers that are professional enough to put aside the fun and fancy of leaping at ideas in order to knuckle down on the unglamorous and tedious work that makes a framework truly great.  Things like improving documentation, adding rigor to tests and following proper deprecation procedures.  We will bring in good ideas, but we won’t sacrifice quality to do so.

Highlights of Version 1.8.0

So please forgive my long opinionated introduction and let me point out some of the latest highlights.

  • A brand new exceptionally detailed three part introduction to SproutCore.

  • A new reference guide on the build tools.

  • Many many bug fixes. See the CHANGELOG for a complete breakdown.

  • The beginnings of a major clean up initiative includes several deprecations.  Look for console warnings to indicate deprecated functions and check the CHANGELOG for the full list of deprecations.

  • The Desktop framework has been thoroughly updated to include correct WAI-ARIA attributes for improved compatibility with assistive technologies.

  • Get a basic statechart structure in new projects using the –statechart switch with sproutcore init or sproutcore gen app.

  • Statechart States can be made to represent a route (by default SC.routes routes) and if assigned, the state will be notified any time the app’s location changes to match the state’s assigned route.

  • Addition of SC.StatechartDelegate mixin. Apply this to objects that are to represent a delegate for a SC.Statechart object. When assigned to a statechart, the statechart and its associated states will use the delegate in order to make various decisions.

  • Added the ability to dynamically add substates to a statechart via a state’s addSubstate method.

  • TextFieldView has a new property, hintOnFocus, which uses a div to act in place of the regular ‘placeholder’ so that it remains visible while the text field has focus.

  • Rewrite of SC.browser, which matches more browsers correctly and replaces the potpourri of various properties with seven standard properties: device, name, version, os, osVersion, engine and engineVersion.  For possible values, see the matching constants: SC.BROWSER, SC.DEVICE, SC.OS, SC.ENGINE.

  • APP_IMAGE_ASSETS is a new global array that contains the list of all sprited images, this is ideal to preload images at different points.  For example, even before the app or SproutCore finishes loading.

  • Sprites generated using @include slice(s) are now optimized to use space in the most optimal way to reduce memory foot print generated by a lot of extra transparent space.

  • Added a security feature for dev environment. By default sc-server can only be used from your local machine unless you set the flag –allow-from-ips.

  • Made sc-server non-blocking to work with long-polling requests.

  • Allow longer timeouts in sc-server proxy by setting connect_timeout and inactivity timeout in the Buildfile.

  • See the CHANGELOG for the full list of changes.

Finally, just thanks again to everyone that has made this release possible.  No matter if it was only a small part, I truly hope you feel pride in knowing that every part was essential.


Please use the mailing list sproutcore@googlegroups.com for all comments and questions.

Sprint Towards 1.8 Release

written by tkeating

SproutCore is about to get a new release on February 29, 2012 and we want to kick it off with an important sprint over the last weekend of the month.  As an open-source project, the success of SproutCore depends on you and others like you, so please consider setting aside some time to get involved.  Thanks!

Aside:  We’ve decided that the next release of SproutCore will be titled 1.8.  It’s simply an indication that the code base has changed enough since the 1.7 beta, which should have been finalized some time ago but was missed during the rocky period when SproutCore 2.0 was determined no longer to present the future of SproutCore.